package com.ruoyi.system.mapper;

import java.util.List;
import com.ruoyi.system.domain.MainTask;
import com.ruoyi.system.domain.SubTask;

/**
 * 主任务Mapper接口
 * 
 * @author zhaoyu
 * @date 2025-06-18
 */
public interface MainTaskMapper 
{
    /**
     * 查询主任务
     * 
     * @param taskId 主任务主键
     * @return 主任务
     */
    public MainTask selectMainTaskByTaskId(Long taskId);

    /**
     * 查询主任务列表
     * 
     * @param mainTask 主任务
     * @return 主任务集合
     */
    public List<MainTask> selectMainTaskList(MainTask mainTask);

    /**
     * 新增主任务
     * 
     * @param mainTask 主任务
     * @return 结果
     */
    public int insertMainTask(MainTask mainTask);

    /**
     * 修改主任务
     * 
     * @param mainTask 主任务
     * @return 结果
     */
    public int updateMainTask(MainTask mainTask);

    /**
     * 删除主任务
     * 
     * @param taskId 主任务主键
     * @return 结果
     */
    public int deleteMainTaskByTaskId(Long taskId);

    /**
     * 批量删除主任务
     * 
     * @param taskIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteMainTaskByTaskIds(Long[] taskIds);

    /**
     * 批量删除子任务
     * 
     * @param taskIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteSubTaskBySubTaskIds(Long[] taskIds);
    
    /**
     * 批量新增子任务
     * 
     * @param subTaskList 子任务列表
     * @return 结果
     */
    public int batchSubTask(List<SubTask> subTaskList);
    

    /**
     * 通过主任务主键删除子任务信息
     * 
     * @param mainTaskId 主任务ID
     * @return 结果
     */
    public int deleteSubTaskByMainTaskId(Long mainTaskId);

    /**
     * 通过主任务主键查询子任务列表
     * 
     * @param mainTaskId 主任务ID
     * @return 子任务列表
     */
    public List<SubTask> selectSubTaskByMainTaskId(Long mainTaskId);
}
